/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Client;

import java.io.Serializable;

/**
 *Clase Message.
 * Tiene como variable globales Message_ConteneTodo y leido.
 * @author Roxana
 */
public class Message implements Serializable{
    private Message_ContieneTodo Contenido;
    private boolean leido;

    /**
     * Constructor con parametros.
     * Tiene como parametro el nombre del remitente,nombre del destinatorio, asunto del correo y texto del mensaje.
     * @param sender nombre delremitente.
     * @param destinatorio nombre del destinatorio.
     * @param Asunto asunto del correo.
     * @param texto texto del mensaje.
     */
    public Message(String sender,String destinatorio, String Asunto, String texto) {
        this.Contenido=new Message_ContieneTodo(sender, destinatorio, Asunto, texto);
        this.leido = false;
        leido=false;
    }
    /**
     * Este metodo devuelve el nombre del remitente,nombre del destinatorio,asunto del correo y texto del mensaje en una cadena.
     * @return nombre del remitente,nombre del destinatario,asunto del correo y texto del mensaje.
     */
    public String ToString (){
        String contenido=Contenido.ToString()+"/"+leido;
        return contenido;
    }
    /**
     * Este metodo retorno el nombre del destinatorio.
     * @return nombre del destinatorio.
     */
    public String Obtener_Destinatorio(){
        String destinatorio=Contenido.Obtener_Destinatorio();
       return destinatorio;
    }
    /**
     * Este metodo retorna el nombre del remitente.
     * @return nombre del remitente.
     */
    public String Obtener_Remitente(){
        String remitente=Contenido.Obtener_Remitente();
       return remitente;
    }
    /**
     * Este metodo retorna el asunto del correo.
     * @return asunto del correo.
     */
    public String Obtener_Asunto(){
        String asunto=Contenido.Obtener_Asunto();
       return asunto;
    }
    /**
     * Este metodo me retorna el texto del mensaje.
     * @return texto del mensaje.
     */
    public String Obtener_Texto(){
        String texto=Contenido.Obtener_Texto();
       return texto;
    }  
    /**
     * Este metodo retorno el estado de leido en string.
     * @return estado de leido.
     */
    public String Obtener_leido(){
        String leer=ToString();
        String estadoLeido;
        int longitud;
        int indice=leer.length();
        int Posicion=0;
        while(indice>0&& Posicion==0){
            Posicion=buscar_posicionL(leer, indice);
            indice--;
        }
        longitud=leer.length();
        estadoLeido=leer.substring(Posicion, longitud);
       return estadoLeido;
    }
    /**
     * Este metodo retorna la posicion donde se encuentra el leido.
     * @return posicion del leido.
     */
    private int buscar_posicionL(String ToString,int posicion){
        
        if(ToString.charAt(posicion-1)=='/'){
            return posicion;
        }
        return 0;
    }
    /**
     * Este metodo retorna el estado de leido.
     * @return estado de leido.
     */
    public boolean getLeido(){
        String leer=Obtener_leido();
        leido= Boolean.valueOf(leer);
        return leido;
    }
    /**
     * Este metodo retorno el estado del leido si es que se a leido el mensaje.
    */
    public void LeerMensaje(){
         leido=true;
    }

}
